using System.Windows;
using System.Collections.Generic;
using Silvery.GameControls;

namespace Silvery.Command
{
    public interface IGameCommandBox
    {
        /// <summary>
        /// 添加一行到输出界面
        /// </summary>
        /// <param name="content"></param>
        void WriteLineToOutput(object content);
        /// <summary>
        /// 显示
        /// </summary>
        void Show();
        /// <summary>
        /// 隐蔽
        /// </summary>
        void Hide();
        /// <summary>
        /// 命令集
        /// </summary>
        List<IGameCommand> Commands { get; }
        /// <summary>
        /// 显示Visibility
        /// </summary>
        System.Windows.Visibility Visibility { get; set; }
        /// <summary>
        /// 输出控件,可能是TextBlock,TextBox,RichTextBox
        /// </summary>
        FrameworkElement UotputControl { get; }
        /// <summary>
        /// 显示使用的热键
        /// </summary>
        HotKey DisplayHotKey { get; }
        /// <summary>
        /// 是否显示
        /// 比如我们期望在游戏中不会显示命令组件，设置为true，默认为flase
        /// </summary>
        bool NotDisplay { get; set; }
    }
}
